<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1.pending：初始状态-等待状态-等待promise的状态切换
        // 2.resolved:对应的是promise构建的执行函数，调用resolve函数的时候，才会将状态切换为resolved
        //     将后续的回调方法执行then第一个函数
        // 3.rejected:对应的是promise构建的执行函数，调用reject函数的时候，才会将状态切换为rejected
        //     将后续的回调方法执行then第二个函数
        // var p=new Promise(function(resolve,reject){
        //     resolve();
        //     // reject();
        // });
        // p.then(function(){
        //     console.log("执行resolve");
        // },function(){
        //     console.log("执行reject");
        // });
        // console.log(p);
        function createPromise(){
            let handle=function(resolve,reject){
                try{
                    console.log(1);
                    // consol.log(1);
                    resolve();
                }catch(e){
                    reject();
                }
            };
            // return new Promise(function(resolve,reject){

            // });
            return new Promise(handle);
        }
        var p=createPromise();
      
        var p2 = p.then(function(){//解决函数|实现函数
            // console.log("执行了resolve");
            consol.log("执行了resolve");
            // return new Promise(function(resolve,reject){
            //     resolve();
            // });
        },function(){//拒绝函数|错误函数
            console.log("执行了reject");
            // consol.log("执行了reject");
            // return new Promise(function(resolve,reject){
            //     reject();
            // });
        });
        //前面then函数被调用时，会返回一个全新的Promise对象(pending)
        // 如果前一个then没有返回自定义的Promise对象(没有return),返回的promise对象用于监控前一个then中的函数执行（js语句的执行）状态
        p2.then(function(){
            console.log("----执行了resolve----");
        },function(){
            console.log("---执行了reject---");
        });
    </script>
</head>
<body>
    
</body>
</html>